import { http } from "@/utils/http";
import { storageLocal } from "@pureadmin/utils";
import { userKey } from "@/utils/auth";

/**
 * 获取异步路由
 * @description 从真实接口获取异步路由，如果接口未实现，则从localStorage获取
 * @returns 异步路由数据
 */
export function getAsyncRoutes() {
  console.log("===== getAsyncRoutes被调用 =====");

  // 尝试从localStorage获取用户的菜单数据
  const userInfo = storageLocal().getItem(userKey) as any;
  console.log("localStorage中的用户信息:", userInfo);

  if (userInfo && Array.isArray(userInfo.menus) && userInfo.menus.length > 0) {
    console.log("从localStorage获取到菜单数据，菜单数量:", userInfo.menus.length);

    // 直接返回原始菜单数据，避免在这里调用generateRoutes导致可能的循环引用
    return Promise.resolve({
      success: true,
      data: userInfo.menus
    });
  }

  // 尝试调用后端接口获取菜单数据
  // 注释掉的是原来调用真实接口的代码
  // return http.request<{
  //   success: boolean;
  //   data: Array<any>;
  // }>("get", "/user/menus");

  console.log("没有找到缓存的菜单数据，返回空数组");
  return Promise.resolve({
    success: true,
    data: []
  });
} 